#include <algorithm>
#include<iostream>
#include<string>
using namespace std;
class Solution {
public:
    int balancedString(string s) {
      int cnt[26]={0};
      int n=s.size();
      for(char c:s)
        cnt[c-'A']++;
    int ans=INT_MAX;
    if(cnt['Q'-'A']==n/4&&cnt['W'-'A']==n/4&&cnt['E'-'A']==n/4&&cnt['R'-'A']==n/4)return 0;//已经排完序
    for(int i=0,j=0;j<n;j++)//遍历右端点
    {
        cnt[s[j]-'A']--;//更新刚刚新加入窗口的元素
        while(i<=j&&cnt['Q'-'A']<=n/4&&cnt['W'-'A']<=n/4&&cnt['E'-'A']<=n/4&&cnt['R'-'A']<=n/4)//窗口外的所有元素数量都小于等于要求答案
        {
            ans=min(ans,j-i+1);//说明当前区间内的所有元素都变换即可满足题意，更新区间
            cnt[s[i]-'A']++;//寻找最小的情况
            i++;
        }
        
    }

      return ans;

}
};